package com.wujian.love.study.sufa;

/**
 * @ClassName: PaiXu
 * @Description:排序
 * @Author: wuj
 * @Date: 2021-03-10 09:55
 **/
public class PaiXu {

    public static final int[] arr = {9, 10, 10, 8, 38, 2, 40};


    public static void main(String[] args) {
        int[] maopao = bubbleSort(arr);
        for (int i : maopao) {
            System.out.println(i);
        }

    }


    /**
     * 冒泡排序
     * 基本思想: 冒泡排序，类似于水中冒泡，较大的数沉下去，较小的数慢慢冒起来，假设从小到大，即为较大的数慢慢往后排，较小的数慢慢往前排。
     * 直观表达，每一趟遍历，将一个最大的数移到序列末尾。
     * 因此需要n-1趟；
     *
     * @param arr
     * @return
     */
    public static int[] bubbleSort(int[] arr) {
        if(arr==null || arr.length < 2 ){
            return arr;
        }// 6
        for (int i = 0; i < arr.length - 1; i++) {
            //每一次遍历都可以确定最大的数 最后排除-i
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;

                }
            }

        }
        return arr;
    }
}
